import uvicorn
from fastapi import FastAPI, WebSocket

# 创建App应用对象
app = FastAPI()


# 绑定路由，监听来自websocket协议的路由
@app.websocket("/api") # 访问这个接口需要的地址  ws://127.0.0.1:8088/api
async def api(websocket: WebSocket):
    # 等待客户端的websocket请求连接
    await websocket.accept()
    while True:
        # await websocket.receive_json() 接收客户端通过websocket协议上传过来的json数据
        # await websocket.receive_text() 接收客户端通过websocket协议上传过来的文本数据
        # await websocket.receive_bytes() 接收客户端通过websocket协议上传过来的二进制数据[文件/图片/语音]
        data = await websocket.receive_json()
        print("接收到来自客户端的数据：", data)
        # await websocket.send_text 使用websocket协议把文本数据发送给客户端
        # await websocket.send_json 使用websocket协议把json数据发送给客户端
        # await websocket.send_bytes 使用websocket协议把二进制数据发送给客户端[文件/图片/语音]
        await websocket.send_json(f"您方才问的是: {data['message']}")


if __name__ == '__main__':
    uvicorn.run('ws:app', host='0.0.0.0', port=8088)
